collectfs(1)                                                      collectfs(1)



[1mNAME[0m
       collectfs - Collect Filesystem.

[1mSYNOPSIS[0m
       [1mcollectfs [22m[ [1m-t|--trace|-f [22m]...  [4mrootdir[24m [4mmountpoint[0m

       [1mcollectfs [22m[ [1m-h|--help|-H|--help-fuse|-V [22m]...


[1mDESCRIPTION[0m
       [1mCollectfs  [22mis  a  FUSE  userspace filesystem that provides add-on trash
       collection for a directory hierarchy.  Any file that is overwritten  by
       remove  (unlink), move, link, symlink, or open-truncate is relocated to
       a trash directory (mountpoint/.trash/).  Removed  files  are  date-time
       stamped  so  that  edit  history  is  maintained  (a  version number is
       appended if the same file is collected more than once in the same  sec-
       ond).   Collectfs is intended as a light weight way to preserve changes
       made throughout the working day. It is not intended  as  a  replacement
       for revision control or backups. The intention is to protect you during
       the between-times, when you're not covered by these other tools:  those
       moments  where you misstep with rm, mv, or cat; or those times when you
       wish you could revert or compare your source to as it was an hour ago.

       To provide some context for recovery,  the  trash  directory  hierarchy
       mirrors the original directory hierarchy. Collectfs uses rename to col-
       lect files and move them into the trash hierarchy - this is quite effi-
       cient  because  it  requires  no  data  to be copied. Because collectfs
       relies on rename, the trash directory must reside within the  hierarchy
       being collected (i.e. the same physical filesystem).

       Only  normal  files  are  collected.  Symbolic links are collected, but
       only as links.  Fifos are not collected.   Directories  are  only  col-
       lected  if  necessary to preserve file content - there is no protection
       for empty directories.


   [1mOPTIONS[0m
       [1m-t, --trace[0m

              Output a trace of each FUSE operation  performed  by  collectfs.
              Normally  this  would  be passed to the system log unless the -f
              option is also applied.


       [1m-f[0m

              Instruct FUSE to run in the foreground and  direct  output  nor-
              mally sent to the system log to the standard error stream.


       [1m-h, --help[0m

              Collectfs help.  A short usage and options summary and exit.


       [1m-H, --help-fuse[0m

              Access the fuse usage and options summary and exit.


       [1m-V[0m

              Report collectfs version and exit.


[1mEXAMPLES[0m
       Make a development project directory and use collectfs to protect it.

                  mkdir my_project_src
                  mkdir my_project
                  collectfs my_project_src my_project
                  touch my_project/code.c
                  rm my_project/code.c
                  ls my_project/.trash/
                  usermount -u my_project

       The  real  source  of the project is [1mmy_project_src [22m, but the developer
       works within the [1mmy_project  [22mmount-point  gaining  protection  of  col-
       lectfs.  Files are moved to .trash when ever they get clobbered.


[1mENVIRONMENT VARIABLES[0m
       [1mCOLLECTFS_LOGALL[0m
              if set, log all FUSE filesystem operations.

       [1mCOLLECTFS_TRASH[0m
              if  set  use an alternative trash directory name (the default is
              .trash). Only the name can be  specified,  no  path  element  is
              accepted.   The trash directory will always reside at the top of
              the filesystem.


[1mBUGS AND LIMITATIONS[0m
       Collectfs does not  currently  preserve  permissions  when  duplicating
       directory hierarchies.  Directories under the trash folder will be cre-
       ated with permissions set  to  0700  (user=rwx,group=none,others=none).
       Because of this, files moved to the trash folder may become less acces-
       sible to other users than before they were moved.

       Empty directories aren't protected.  Collectfs is  currently  aimed  at
       preserving files and with their associated directory context.

       The  trash  directory  is  visible within the collectfs. If you perform
       operations such as rm on files inside a collectfs trash directory, col-
       lectfs will just move them to a trash directory inside the trash direc-
       tory. For example, rm -r on the trash folder just results  in  a  trash
       folder inside the trash folder as well as a "Directory not empty" error
       from rm command.  Note, you can really remove files from the  trash  by
       using  the  real non-fuse path to the trash folder (collectfs only pro-
       tects you from operations performed under the mount point).

       There may be bugs that permanently destroy files.  I've been using col-
       lectfs to create collectfs.  Other than this, testing has been limited.
       As a development tool it works for me, I also  backup  my  system  each
       day.   You  need to make your own assessment of how much trust you want
       to place in collectfs and what measures  you  should  take  to  protect
       yourself from any bugs that might be present.


[1mAUTHOR[0m
       Michael Hamilton


[1mACKNOWLEDGEMENTS[0m
       [4mThe[24m [4mFUSE[24m [4mfilesystem[24m [4min[24m [4muserspace[0m
       http://fuse.sourceforge.net/


       [4mThe[24m [4mFUSE[24m [4mtutorial[24m by Joseph J. Pfeiffer
       http://www.cs.nmsu.edu/~pfeiffer/fuse-tutorial/


       FUSE examples by John Cobb & Radek Podgorny
       http://sysdocs.stu.qmul.ac.uk/sysdocs/Comment/FuseUserFileSystems/



[1mCOPYRIGHT[0m
       Copyright 2011, Michael Hamilton.

       Collectfs  is  free  software; you can redistribute it and/or modify it
       under the terms of the GNU General Public License as published  by  the
       Free  Software  Foundation;  either  version 3, or (at your option) any
       later version.






MH                                 collectfs                      collectfs(1)
